package cn.glc.daily.life.infrastructure.dao;

import cn.glc.daily.life.infrastructure.po.DictPo;
import cn.glc.daily.life.model.dto.dict.DictDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author simon
 * @date 2021/4/13 12:00
 * @copyright:
 * @modifier
 * @motto a no talent, people who have to study hard
 */
public interface DictDao extends BaseMapper<DictPo> {

    /**
     * 分页查询
     *
     * @param page
     * @param dictDto
     * @return
     */
    IPage<DictPo> listPage(Page page, @Param("dictDto") DictDto dictDto);

    /**
     * 通过code 查询字典数据
     *
     * @param code
     * @return
     */
    DictPo findByCode(String code);

    /**
     * 非分页 - 查询指定节点下的所有数据
     *
     * @param dictDto
     * @return
     */
    List<DictPo> queryChildrenByCondition(DictDto dictDto);

    /**
     * 非分页 - 查询指定code数据
     *
     * @param dictDto
     * @return
     */
    DictPo queryByCondition(DictDto dictDto);

    /**
     * 查询指定父节点的下一级子树的数量
     *
     * @param code
     * @return
     */
    Integer queryChildrenCountByCondition(String code);
}
